Arbre binaire de recherche.

Définition

Un arbre binaire de recherche est un arbre qui possède pour chacun de ses nœuds la propriété suivante sa clef est supérieure à toutes les clefs de ses descendants de gauche et plus petite ou égale à toutes les clefs de ses descendants de droite.

Un arbre binaire n'est pas un tas en effet dans ce dernier on sait juste que la clef d'un nœud est plus grande que celle de ses descendants.

L’intérêt premier d'un arbre de recherche se trouve dans son nom : faire des recherches. En général une recherche dans un arbre de recherche de taille n se fait en ln(n) (comme une recherche dichotomique dans un tableau) avec cependant une propriété supplémentaire l'insertion se fait aussi en O(ln(n)) (dans un tableau l'insertion se fait en O(n) car il faut décaler les éléments).

Exemple

L'arbre de recherche n'est pas très équilibré sa profondeur est de 5.

Exemple
  1. A partir d'un arbre binaire de recherche vide les nombres suivants dans l'ordre :
    • [0,1,2,3]
    • [0,1,3,2]
    • [0,2,1,3]
    • [0,2,3,1]
    • [0,3,1,2]
    • [0,3,2,1]
    • [1,0,2,3]
    • [1,0,3,2]
    • [1,2,0,3]
    • [1,2,3,0]
    • [1,3,0,2]
    • [1,3,2,0]
    • [2,1,0,3]
    • [2,1,3,0]
    • [2,0,1,3]
    • [2,0,3,1]
    • [2,3,1,0]
    • [2,3,0,1]
    • [3,1,2,0]
    • [3,1,0,2]
    • [3,2,1,0]
    • [3,2,0,1]
    • [3,0,1,2]
    • [3,0,2,1]
  2. Dans quel ordre faut il 7 élèments (0,1,2,3,4,5 et 6) pour avoir un arbre équilibré parfait.
  3. Même question avec les élèments de 0 à 14.

Implémentation

Exemple
  1. Implementer une classe arbre binaire de recherche (en vous inspirant de l'implémentation récursive d'un arbre celle avec le parent) en plus des méthodes pour un arbre, implémenter les méthodes :
    • insérer une clef.
    • verifier si une clef est dans un arbre.
    • (Très dur) Supprimer une clef si elle existe de l'arbre. Indication : Il y a quatre cas possibles selon les enfants.
Ajouter


Supprimer

Exemple
  1. Afficher les nombres d'un arbre binaire de recherche du plus petit au plus grand. On dit que l'on fait un parcours infixe.
  2. Proposer une nouvelle méthode de tri qui en partant d'un tableau, construit l'arbre binaire de recherche en ajoutant les cases du tableau les une après les autres, puis qui change le tableau d'origine en faisant un parcours infixe sur l'arbre. Que pensez vous de l'éfficacité de la méthode ?